feat: add toolset presets for large MCP clients - #51
Merged
Conversation
…eploy preset Hardcoded tool counts break every time the OpenAPI spec is re-synced (the toolset already grew from 524 to 546 while this PR was open), so the tests now compute expected counts by filtering generatedTools by tag. Also adds the compose tag to the deploy preset — Docker Compose is a first-class deployment type in Dokploy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Siumauricio
force-pushed
the
fix/toolset-presets
branch
from
August 7, 2026 05:38
b3f27f2 to
ee10e36
Compare
Contributor
|
Rebased this branch onto main and pushed two maintainer commits, @franktronics — the feature itself is unchanged:
All 12 tests, type-check, and build pass. Thanks for the contribution — this is a genuinely useful feature for clients that struggle with large tool lists! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add toolset presets and exclusion filters so users can reduce the number of MCP tools exposed to clients/providers that struggle with very large tool lists.
By default, behavior stays unchanged: all Dokploy tools are loaded.
Changes
DOKPLOY_TOOL_PRESETall(default)minimalcoredeploydatabasesgitDOKPLOY_DISABLED_TAGSto exclude categories after selecting a preset or explicit tag list.DOKPLOY_ENABLED_TAGSas exact-control override.Presets
minimal:project,applicationcore:project,server,applicationdeploy:project,environment,server,application,domain,deploymentdatabases:postgres,redis,mysql,mariadb,mongo,libsqlgit:github,gitlab,bitbucket,gitea,gitProvider,registry,sshKeyWhy
The server exposes hundreds of tools when all Dokploy API categories are enabled. Some MCP clients and LLM providers can time out(e.g. GPT models) or fail when ingesting very large tool lists.
This allows us to maintain full API coverage by default while providing users with a documented way to reduce the number of tools.
Configuration precedence
DOKPLOY_ENABLED_TAGStakes precedence when set.DOKPLOY_TOOL_PRESETselects a predefined toolset.DOKPLOY_DISABLED_TAGSis applied last.DOKPLOY_TOOL_PRESET=all.Testing
npx --yes pnpm@10.24.0 test -- src/server.test.tsnpx --yes pnpm@10.24.0 type-checknpx --yes pnpm@10.24.0 lintnpx --yes pnpm@10.24.0 buildManual smoke checks:
DOKPLOY_TOOL_PRESET=minimalloads 40 toolsDOKPLOY_TOOL_PRESET=coreloads 57 toolsDOKPLOY_ENABLED_TAGS=project,application,postgresloads 56 tools